﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Hotnet.Dal.NSDalMusic;
using Ninject.Core;
using Hotnet.Entity;
using Hotnet.Biz.NSBizCommon;
using Hotnet.Entity.Enum;

namespace Hotnet.Biz.NSBizMusic
{
	public class BizMusicGroupXTag : BaseBiz<MusicGroupXTag>
	{
		private static DalMusicGroupXTag db = new DalMusicGroupXTag();

		private BizTag _BizTag;
		private BizTag BizTag
		{
			get
			{
				if (_BizTag == null)
					_BizTag = new BizTag();
				return _BizTag;
			}
		}

		public BizMusicGroupXTag() : base(db) { }

		public void SaveTags(string tags, int groupId)
		{
			var tagIDs = BizTag.Save(tags, EnumTagType.音乐);

			foreach (var tagId in tagIDs)
			{
				var musicXTag = new MusicGroupXTag();
				musicXTag.GroupID = groupId;
				musicXTag.TagID = tagId;
				this.Insert(musicXTag);
			}
		}


		public void DeleteAllByGroupID(int groupId)
		{
			db.DeleteBy(tag => tag.GroupID == groupId);
		}

		public void DeleteAllByTagID(int tagId)
		{
			db.DeleteBy(tag => tag.TagID == tagId);
		}

		public string GetTagStringsByGroupID(int groupId)
		{
			MusicGroupXTag[] tags = db.ListBy(tag => tag.GroupID == groupId);
			StringBuilder sb = new StringBuilder();
			foreach (var item in tags)
			{
				sb.Append(BizTag.Get(item.TagID).TagName).Append(" ");
			}
			return sb.ToString().Trim(); ;
		}

		public List<string> ListTagNamesByGroupID(int groupId)
		{
			MusicGroupXTag[] tags = db.ListBy(tag => tag.GroupID == groupId);
			List<string> tagIds = new List<string>();
			foreach (var tag in tags)
			{
				tagIds.Add(BizTag.Get(tag.TagID).TagName);
			}
			return tagIds;
		}

	}
}
